#include <stdio.h>
#include <sys/types.h>
#include <sys/ipc.h>

#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>

 // 定义一个消息结构体
 struct msgbuf
 {
    long mtype;         // 消息的编号(类型)(必须从0开始)
    char mtext[1024];   // 消息的内容，长度自定义
 };


int main(int argc, char const *argv[])
{
    // 1、创建密钥
    key_t key = ftok("/", 123);
    if (key == -1)
    {
        perror("创建密钥失败!\n");
        return -1;
    }
    else
    {
        printf("创建密钥成功!\n");
    }

    // 2、通过密钥创建消息队列对象
    int msgid = msgget(key, IPC_CREAT|0777);
    if (msgid == -1)
    {
        perror("创建消息队列对象失败!\n");
        return -2;
    }
    else
    {
        printf("创建消息队列对象成功!\n");
    }
    
    // 3、创建一个消息
    struct msgbuf msg = {1, "hello"};

    // 4、把消息发送到消息队列对象中
    msgsnd(msgid, &msg, 5, 0);


    return 0;
}
